package ejb.cbm.admin.entity;

import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@Table(name="ARCHIVOLAYOUT")

public class ArchivoLayoutEntity  implements java.io.Serializable {

     private ArchivoLayoutEntityId id;
     private ArchivoEntity archivo;
     private String campotabla;
     private String tipodato;
     private Long longitud;
     private String formato;
     private Long flagactivo;
     private String usuarioregistro;
     private Date fecharegistro;
     private String usuariomodificacion;
     private Date fechamodificacion;


    // Constructors

    /** default constructor */
    public ArchivoLayoutEntity() {
    }

	/** minimal constructor */
    public ArchivoLayoutEntity(ArchivoLayoutEntityId id, ArchivoEntity archivo, String tipodato, Long longitud, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.id = id;
        this.archivo = archivo;
        this.tipodato = tipodato;
        this.longitud = longitud;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }
    
    /** full constructor */
    public ArchivoLayoutEntity(ArchivoLayoutEntityId id, ArchivoEntity archivo, String campotabla, String tipodato, Long longitud, String formato, Long flagactivo, String usuarioregistro, Date fecharegistro, String usuariomodificacion, Date fechamodificacion) {
        this.id = id;
        this.archivo = archivo;
        this.campotabla = campotabla;
        this.tipodato = tipodato;
        this.longitud = longitud;
        this.formato = formato;
        this.flagactivo = flagactivo;
        this.usuarioregistro = usuarioregistro;
        this.fecharegistro = fecharegistro;
        this.usuariomodificacion = usuariomodificacion;
        this.fechamodificacion = fechamodificacion;
    }

   
    // Property accessors
    @EmbeddedId
    @AttributeOverrides( {
        @AttributeOverride(name="codigoarchivo", column=@Column(name="CODIGOARCHIVO", unique=false, nullable=false, insertable=true, updatable=true, precision=8, scale=0) ), 
        @AttributeOverride(name="posicion", column=@Column(name="POSICION", unique=false, nullable=false, insertable=true, updatable=true, precision=3, scale=0) ) } )

    public ArchivoLayoutEntityId getId() {
        return this.id;
    }
    
    public void setId(ArchivoLayoutEntityId id) {
        this.id = id;
    }
    
    @ManyToOne(cascade={},fetch=FetchType.LAZY)
    @JoinColumn(name="CODIGOARCHIVO", unique=false, nullable=false, insertable=false, updatable=false)
    public ArchivoEntity getArchivo() {
        return this.archivo;
    }
    
    public void setArchivo(ArchivoEntity archivo) {
        this.archivo = archivo;
    }
    
    @Column(name="CAMPOTABLA", unique=false, nullable=true, insertable=true, updatable=true, length=30)
    public String getCampotabla() {
        return this.campotabla;
    }
    
    public void setCampotabla(String campotabla) {
        this.campotabla = campotabla;
    }
    
    @Column(name="TIPODATO", unique=false, nullable=false, insertable=true, updatable=true, length=10)
    public String getTipodato() {
        return this.tipodato;
    }
    
    public void setTipodato(String tipodato) {
        this.tipodato = tipodato;
    }
    
    @Column(name="LONGITUD", unique=false, nullable=false, insertable=true, updatable=true, precision=8, scale=0)
    public Long getLongitud() {
        return this.longitud;
    }
    
    public void setLongitud(Long longitud) {
        this.longitud = longitud;
    }
    
    @Column(name="FORMATO", unique=false, nullable=true, insertable=true, updatable=true, length=10)
    public String getFormato() {
        return this.formato;
    }
    
    public void setFormato(String formato) {
        this.formato = formato;
    }
    
    @Column(name="FLAGACTIVO", unique=false, nullable=true, insertable=true, updatable=true, precision=1, scale=0)
    public Long getFlagactivo() {
        return this.flagactivo;
    }
    
    public void setFlagactivo(Long flagactivo) {
        this.flagactivo = flagactivo;
    }
    
    @Column(name="USUARIOREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuarioregistro() {
        return this.usuarioregistro;
    }
    
    public void setUsuarioregistro(String usuarioregistro) {
        this.usuarioregistro = usuarioregistro;
    }
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAREGISTRO", unique=false, nullable=false, insertable=true, updatable=true, length=7)
    public Date getFecharegistro() {
        return this.fecharegistro;
    }
    
    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }
    
    @Column(name="USUARIOMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=30)
    public String getUsuariomodificacion() {
        return this.usuariomodificacion;
    }
    
    public void setUsuariomodificacion(String usuariomodificacion) {
        this.usuariomodificacion = usuariomodificacion;
    }
    @Temporal(TemporalType.DATE)
    @Column(name="FECHAMODIFICACION", unique=false, nullable=false, insertable=true, updatable=true, length=7)

    public Date getFechamodificacion() {
        return this.fechamodificacion;
    }
    
    public void setFechamodificacion(Date fechamodificacion) {
        this.fechamodificacion = fechamodificacion;
    }
}